// 测试算法实现
export class TestAlgorithms {
  /**
   * 测试1算法：将输入参数乘以2
   * @param testValue1 测试值1
   * @returns 测试结果1，为输入值的2倍
   */
  static test1Calculation(testValue1: number): { testResult1: number } {
    const testResult1 = testValue1 * 2;
    return { testResult1 };
  }
  
  /**
   * 测试2算法：动态输入计算 - 将所有输入数据相加然后乘以乘数因子
   * @param inputs 输入项数组
   * @param multiplier 乘数因子
   * @returns 计算结果，包含总和、总和*乘数因子、平均值、项目数量
   */
  static test2Calculation(inputs: Array<{value: number}>, multiplier: number): { 
    sum: number; 
    sumMultipliedByThree: number; 
    average: number; 
    itemCount: number;
  } {
    // 验证参数
    if (!Array.isArray(inputs)) {
      throw new Error('inputs参数必须是数组类型');
    }
    
    if (typeof multiplier !== 'number' || isNaN(multiplier)) {
      throw new Error('multiplier参数必须是有效的数字');
    }
    
    // 计算总和
    const sum = inputs.reduce((acc, item) => acc + (item.value || 0), 0);
    // 计算平均值
    const average = inputs.length > 0 ? sum / inputs.length : 0;
    // 计算总和乘以乘数因子的结果
    const sumMultipliedByThree = sum * multiplier;
    // 返回计算结果
    return {
      sum,
      sumMultipliedByThree,
      average,
      itemCount: inputs.length
    };
  }
}